#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>


int g_val=10;
int main()
{

        pid_t id=fork();
        if(id==0)
        {
            //child
            int cnt=5;
            while(1)
            {
                cnt--;
                printf("I am child pid:%d ,ppid %d ,g_val:%d ,g_val addr:%p\n",getpid(),getppid(),g_val,&g_val);
                if(cnt==0)
                {
                    printf("---------------------\n");
                    g_val=20;
                }
                sleep(1);
            }
        }
        else{
            //parent
            
                while(1)
                {
                    
                    printf("I am parent pid:%d ,ppid %d ,g_val:%d ,g_val addr:%p\n",getpid(),getppid(),g_val,&g_val);
                    sleep(1);
                }
        }
//     char* pa=(char*)malloc(20);
//     char* pb=(char*)malloc(20);
//     char* pc=(char*)malloc(20);
// 
//     printf("heap1:%p\n",pa);
//     printf("heap2:%p\n",pb);
//     printf("heap3:%p\n",pc);
// 
//     printf("stack1:%p\n",&pa);
//     printf("stack2:%p\n",&pb);
//     printf("stack3:%p\n",&pc);
    
    return 0;
}
